1. Technical Field
This invention relates to local area networks, and more particularly to improvements in method and apparatus for a print server for networked printers. Specifically, this invention relates to a method and apparatus for arbitrating client access to a network print server.
2. Background Art
Local Area Networks (LAN), and Wide Area Networks (WAN) originally were used for communications among computer devices (such as terminals, personal computers, and minicomputers) As network usage increased, it was found that the various devices on the network could share resources. For example, a printer connected to a computer could be used by other computers on the network, simply by sending the data to be printed to the printer's computer. As long as the printer's computer had memory resources to handle the large amounts of print data generated by the devices on the network, this system worked adequately. However, dedicating the printer's computer to work as a network print server slows or sometimes even halts other uses of the printer's computer. Therefore, a stand-alone printer that will serve as a network printer has been proposed.
A network printer, like other devices on the network, must have the ability to communicate. Therefore, the network printer must have a certain amount of processing power and memory, so that it may follow the same communications protocol as the rest of the devices on the LAN as well as print. However, the more complex the processor, and the more amount of memory required, the more expensive the network printer becomes.
A network printer without a large memory or a non-volitile memory (such as a disk) has several problems not shared by other devices on the network. A printer is slow, especially in comparison to the time it takes to transmit data. The printer cannot print data as fast as the client can send it, and therefore needs to store the data it receives. However, it is also common to have several megabytes of data to be printed. A printer that has limited memory resources may not be able to handle all of the data that a client device will send, and will therefore lose data.
Furthermore, while the printer is printing for one client device, other client devices might also want to print requests to be serviced. The printer's client processes do not coordinate print requests among themselves because it would take too much time and network resources for each client to check with every other client on the network before sending print requests to the printer. However, because the printer can only service one request at a time (otherwise the printer output would be meaningless), it has to have some method of turning down requests. Answering every request may interrupt the printing process and slow the printer even further. As the clients receive denials of their requests, they will set a timer and try again. The time interval between retries will vary with the client. In a busy network in which clients set unreasonably and unfairly short retry intervals, the printer will have to handle more requests, thus making the printing process even slower.